#pragma once

#include "util/c99defs.hpp"
#include "cat-internal.hpp"
#include "cat-data.hpp"
#include "cat.hpp"

#ifdef __cplusplus
extern "C" {
#endif

	struct cat_window {
		sf::RenderWindow* window;
		sf::Font* catfont;
	};

	EXPORT cat_window_t * cat_creat_window();
	EXPORT bool cat_set_font(cat_window_t* _cat_window,const char* filepath);
	EXPORT void cat_release_window(cat_window_t* _cat_window);

	EXPORT bool cat_open_window(cat_window_t * _cat_window, const char* title, const char* icon);
	EXPORT void cat_resize_window(cat_window_t* _cat_window,int width,int height);
	EXPORT void cat_close_window(cat_window_t* _cat_window);


	EXPORT sf::WindowHandle cat_get_window_handle(cat_window_t* _cat_window);


	EXPORT bool cat_display_window(cat_window_t* _cat_window);
	EXPORT void cat_clear_window(cat_window_t* _cat_window);

	EXPORT void cat_updata_window(cat_window_t* _cat_window);

#ifdef __cplusplus
}
#endif